package com.xyhua.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ser.Serializers;
import com.xyhua.mybatisplus.entity.User;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper extends BaseMapper<User> {

     /**
      * 登录（直接使用注解指定传入参数名称）
      * @param userName
      * @param password
      * @return
      */
     public User login(@Param("userName") String userName, @Param("password") String password);

     /**
      * 根据表名查询用户信息（直接使用注解指定传入参数名称）
      * @param tableName
      * @return
      */
     public List<User> queryUserByTableName(@Param("tableName") String tableName);

     /**
      * 根据Id查询用户信息
      * @param id
      * @return
      */
     public User queryUserById(Long id);

     /**
      * 查询所有用户信息
      * @return
      */
     public List<User> queryUserAll();

     /**
      * 新增用户信息
      * @param user
      */
     public void insertUser(User user);

     /**
      * 根据id更新用户信息
      * @param user
      */
     public void updateUser(User user);

     /**
      * 根据id删除用户信息
      * @param id
      */
     public void deleteUserById(Long id);


     /**
      * <p>
      * 查询 : 根据state状态查询用户列表，分页显示
      * </p>
      *
      * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
      * @param state 状态
      * @return 分页对象
      */
     IPage<User> selectPageVo(Page<User> page, Integer state);
}

